home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / hamradio / tnos-2.000 / tnos-2 / README < prev    next >
Text File  |  1996-07-21  |  6KB  |  175 lines

  1. Building the source tree in either DOS or Unix is nearly identical.
  2.  
  3. There ARE a few prerequisites, though...
  4.     DOS:    A Borland compiler - both 3.0 and 3.1 are known to work
  5.         Others SHOULD compile, but no promises!
  6.  
  7.     Unix:    TCL (tclsh)
  8.         GCC compiler (probably works with others)
  9.         GNU make (might work with others)
  10.         Complete header files (for Linux, this means that the
  11.            Kernel sources need to be installed)
  12.  
  13. The actual compile is as easy as 1-2-3.........
  14.  
  15.  
  16. 1) Set up for proper makefile...
  17.  
  18.     DOS:    premake.bat
  19.         (Sets up for proper makefile, and creates dummy make.inc and
  20.          depend files)
  21.  
  22.     Unix:    premake
  23.         (Sets up for proper makefile, and runs build-make.inc)
  24.  
  25.     Other functions may be added to the premake scripts at a later time.
  26.  
  27.  
  28. 2) [Optional step] Site-specific configuration
  29.  
  30.     This customization should NOT include editing the Makefile.
  31.     Instead, all customizations should be placed in a file
  32.     named 'make.inc', which will be included within the Makefile's
  33.     processing, and commands in make.inc will be treated the same
  34.     as if they were in the Makefile. This way ALL changes specific
  35.     to your site are in make.inc, and will not have to be RE-DONE
  36.     when you upgrade to later releases of TNOS.
  37.  
  38.     Edit the make.inc to your needs. Anything that you WOULD change
  39.     in the Makefile, instead override it in make.inc by including it
  40.     in make.inc.
  41.  
  42.     For example, if you wish to use a different directory for installing
  43.     TNOS other than the default of '/nos' (or '\nos' for MSDOS), you
  44.     could add a new NOSDIR (and NOSDIRSTR, for MSDOS) line in make.inc.
  45.     For example, if you wanted to change the default directory (under
  46.     DOS) to '\tnos' add 'NOSDIR=c:\tnos' and 'NOSDIRSTR=c:/tnos'
  47.     to the make.inc file.
  48.  
  49.     MSDOS NOTE: Backslashes must be used for NOSDIR and forward slashes
  50.     used for NOSDIRSTR.
  51.  
  52.     Please consult the Makefile for what things you COULD change in
  53.     make.inc, what values are valid, and what affect certain changes
  54.     might have on other items. COnsider the Makefile as the reference
  55.     for make.inc changes.
  56.  
  57.     All changes/additions to the make.inc file should be made NOW, before
  58.     moving to the next step.
  59.  
  60.  
  61. 3) Make it....
  62.  
  63.     make doeverything
  64.  
  65. Can't make it any easier!
  66.  
  67.  
  68. NOTE: the 'make' utility MAY be named something different than 'make' on
  69. your system, depending on the compiler, etc. For instance, some DOS users may
  70. need to use Borland's real mode make 'MAKER' and BSD users have GNU's make
  71. named 'gmake'. I can't help you here, it should be named 'make' ;-)
  72.  
  73.  
  74. The compiles SHOULD be clear of errors and warnings. UNIX NOTE: If the
  75. SETSTACK default (as set up in the Makefile) is used, there will be ONE
  76. warning in ksubr.c (about variable `stktop'). This warning is harmless, and
  77. will ALWAYS occur if SETSTACK is not being used.
  78.  
  79.  
  80. -------------------------------------------------------------------------
  81.  
  82. There are some special notes below for BSD/OS compilation.
  83.  
  84. [author's note: Some of this is obsolete, but it retained at this time.
  85.  There is a 'make.inc-BSDI' file, which SHOULD set your environment up
  86.  correctly, without needing to edit the makefile.]
  87.  
  88. -------------------------------------------------------------------------
  89.  
  90.         Notes for BSD/OS implementation
  91.  
  92. This is to be regarded as a test implementation - some minor
  93. problems, possibly related to the odd compiler warning or two -
  94. are present.  It is based upon BSD/OS 2.0 with patches; earlier
  95. versions have not been tested.  It is stable i.e. has not crashed
  96. (yet), but still needs to be hammered.
  97.  
  98. * It is possible that some of my changes are the same as those done
  99.   by Kirk Davis VE6KIK, especially since I viewed his source, but
  100.   I declare that they were developed independently.  I hereby
  101.   acknowledge Kirk for his assistance in getting my port working
  102.   in the first place.
  103.  
  104. * I'm still not happy with the UUCP locking - needs further work
  105.   wrt UID and GID (and I'm not enthusiastic about a root-owned
  106.   program rampaging around my system - this is my production box)
  107.   - currently it is merely setgid-dialer to access the serial ports.
  108.   Note that UUCP locking is not the same as Linux.  I'll probably
  109.   end up creating a "nos" user or something, so it's firewalled.
  110.  
  111. * Some changes need to be made to "makefile.unx" - see later.
  112.  
  113. * I thoroughly recommend the "Electric Fence" malloc debugging
  114.   package by Bruce Perens; it enabled me to find a lingering problem
  115.   with SIGSEGVs, which turned out to be an incorrect line in
  116.   domain.txt (an errant SOA line, to be precise).  As with bugs
  117.   of this nature, it didn't crash right away, but instead clobbered
  118.   something else...  (No, I didn't fix the getline() bug.)
  119.  
  120.   Be aware that Electric Fence DOES slow down the system, and use
  121.   significantly MORE virtual memory, so it should be used only when
  122.   hunting down problems, not in day-to-day usage.
  123.  
  124.  
  125. OK, here is what you have to do to "makefile.unx" to see how I
  126. made the BSD/OS version:
  127.  
  128.  
  129.   1) No support for ELF. You need:
  130.  
  131.      #USEELF = 1
  132.      USEELF =
  133.      #MAKEELF = 1
  134.      MAKEELF =
  135.  
  136.   2) Static linking (LTYPE = -static) is default, but won't hurt.
  137.  
  138.   3) You might want to use "gcc2" instead of the default (whichever
  139.      it is).
  140.  
  141.   4) The "INSTALL" is different; BSD/OS has protection for the serial
  142.      ports.  This needs more work wrt uid/gid, cus I'm paranoid...
  143.      I make it setgid to "dialer" at the moment, and spawn it from my
  144.      own UID; a later mod will have it running under its own UID.  I
  145.      also changed the UUCP directory to have GID "dialer".
  146.  
  147.      Old: INSTALL= install -c
  148.      New: INSTALL= install -c -g dialer -m 2755
  149.  
  150.   5) BSD/OS needs IS_LITTLE_ENDIAN, USE_SETSTACK, BSD_RANDOM.
  151.  
  152.   6) Also SETSTACK= setsp.o
  153.  
  154.   7) BSD/OS doesn't come with NCURSES - get 1.8.5, until 1.9.x stabilises.
  155.      You also need:
  156.  
  157.      ICURSES = -I/usr/local/include/ncurses
  158.      LCURSES = -lncurses
  159.  
  160.   8) Debugging is different:
  161.  
  162.      DEBUG =  -g
  163.      DBGLIB = # -lefence
  164.  
  165.   9) You might also want to turn off optimising whilst debugging:
  166.  
  167.      CFLAGS = $(LTYPE) -DUNIX $(DEBUG) $(PATCHES) $(WARNINGS) $(ICURSES) $(VERS)
  168.  
  169.  10) Send abuse if this doesn't work.
  170.  
  171. -- Dave Horsfall  VK2KFU  dave@esi.com.au
  172.    (dave@vk2kfu.ampr.org won't work just yet)
  173.  
  174.  
  175.